.so ../bk-macros
.TH "bk emacs" "\*[BKVER]" %E% "\*(BC" "\*(UM"
.SH NAME 
bk emacs \- info on how to use emacs' vc-mode
.SH DESCRIPTION
\*(BK is similar to \*(SC, and
.B vc-mode
more or less supports \*(SC,
so most of the things that you can do with
.B vc-mode
work:
.I visit-file
will check out files automatically,
.I C-x C-q
locks files for editing,
.I C-x v v
will prompt for comments and check in an individual file,
.I C-x v =
will compare versions, and so on.
Filename completion doesn't know about sfiles;
this appears to be a general problem with
.BR vc-mode ,
not a \*(BK specific issue.
.LP
You cannot create changesets with
.BR vc-mode ;
use
.B bk citool
or
.BR "bk commit" .
.B vc-mode
does not understand \*(BK's symbol handling,
as that was not part of the original \*(SC.
Do not attempt to use
.BR vc 's
symbol, snapshot, and branch commands with \*(BK.
.LP
.B vc-mode
expects to be able to refer to \*(SC commands directly instead of
via the \*[BK] front end.  In theory, it should suffice to put
.DS
setq vc-path /usr/local/bitkeeper
.DE
in
.IR .emacs ,
but this didn't work when last tested
(most of the BK developers use
.BR vi ).
The commands
.B vc
wants to run are:
.BR admin ,
.BR get ,
.BR delta ,
.BR unedit ,
.BR stripdel ,
and
.BR "bk\ log" .
This just happens to be the list of commands that we symlink into
.B /usr/bin
during a standard installation.
.LP
If you check in a file using
.B bk citool
or
.B bk delta
in a shell window,
.B vc-mode
will not notice; you can go right on editing the buffer, and \*(BK
will get very confused the next time you try to check out the file
(locked or not).  The right way to get out of this mess is to kill off
the offending buffer, rename the modified file out of the way, check out
the file for editing, and rename it back.  Do all the rearrangement from
a shell prompt.  Kill all your buffers before running
.B bk citool
to avoid the problem.
.\" help://Compat/vc
.SH CATEGORY
.B Compat
